// 导入请求工具
import { request } from '../../utils/axios.js';

Page({

  /**
   * 页面的初始数据
   */
  data: {
    username: '',
    password: '',
    loginType: 'wechat', // 'wechat' 或 'account'
    userInfo: {} // 用户信息对象
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 检查是否已登录
    this.checkLoginStatus();
  },
  
  // 检查登录状态
  checkLoginStatus: function() {
    const app = getApp();
    if (app.getLoginStatus()) {
      // 已登录，跳转到首页
      wx.switchTab({ url: '/pages/heme/home' });
    }
  },
  
  // 用户名输入处理
  onUsernameInput: function(e) {
    this.setData({
      username: e.detail.value
    });
  },
  
  // 密码输入处理
  onPasswordInput: function(e) {
    this.setData({
      password: e.detail.value
    });
  },
  
  // 切换到微信登录
  switchToWechatLogin: function() {
    this.setData({
      loginType: 'wechat'
    });
  },
  
  // 切换到账号密码登录
  switchToAccountLogin: function() {
    this.setData({
      loginType: 'account'
    });
  },
  
  // 处理用户名密码登录
  handleLogin: function() {
    console.log("用户名密码登录");
    const { username, password } = this.data;
    
    // 简单的表单验证
    if (!username || !password) {
      wx.showToast({
        title: '请输入用户名和密码',
        icon: 'none'
      });
      return;
    }
    
    // 显示加载提示
    wx.showLoading({ title: '登录中...' });
    
    // 发送登录请求
    request.post('/login', { username, password })
      .then(res => {
        wx.hideLoading();
        console.log('登录响应:', res.data);
        
        // 处理后端直接返回的格式
        if (res.statusCode === 200 && res.data && res.data.token) {
          // 保存token到本地存储
          const token = res.data.token;
          const userInfo = res.data.userInfo || {};
          
          wx.setStorageSync('token', token);
          wx.setStorageSync('userInfo', userInfo);
          
          // 同时更新app.globalData
          const app = getApp();
          app.setToken(token);
          app.setUserInfo(userInfo);
          
          wx.showToast({ title: '登录成功' });
          
          // 跳转到首页
          setTimeout(() => {
            wx.switchTab({ url: '/pages/heme/home' });
          }, 1500);
        } else {
          wx.showToast({
            title: res.data?.message || '登录失败',
            icon: 'none'
          });
        }
      })
      .catch(error => {
        wx.hideLoading();
        console.error('登录请求失败:', error);
        wx.showToast({
          title: '网络错误，请稍后重试',
          icon: 'none'
        });
      });

  },
  
  // 处理微信一键登录 - 严格按照微信官方登录流程图实现
  handleWechatLogin: function() {
    // 1. 显示加载提示
    wx.showLoading({ title: '登录中...' });
    
    // 2. 调用wx.login获取登录凭证code
    wx.login({
      success: (loginRes) => {
        if (loginRes && loginRes.code) {
          console.log('获取登录凭证code成功:', loginRes.code);
          
          // 3. 发送code到后端服务器
          request.post('/wechatLogin', {
            code: loginRes.code
          })
          .then(res => {
            wx.hideLoading();
            console.log('微信登录响应:', res.data);
            
            // 4. 后端直接返回token和userInfo
            if (res.statusCode === 200 && res.data && res.data.token) {
            console.log(res.statusCode);
              // 5. 将登录态存入storage
              const token = res.data.token;
              const userInfo = res.data.userInfo || {};
              
              // 输出用户信息，特别关注openId
              console.log('获取到的用户信息:', userInfo);
              if (userInfo && userInfo.openId) {
                console.log('用户openId已成功获取并存储:', userInfo.openId);
              } else {
                console.warn('用户信息中未包含openId');
              }
              
              wx.setStorageSync('token', token);
              wx.setStorageSync('userInfo', userInfo);
              
              // 同时更新app.globalData
              const app = getApp();
              app.setToken(token);
              app.setUserInfo(userInfo);
              
              wx.showToast({ 
                title: '登录成功',
                icon: 'success'
              });
              
              // 6. 跳转到首页
              setTimeout(() => {
                wx.switchTab({ url: '/pages/heme/home' });
              }, 1500);
            } else {
              const errorMsg = res.data?.message || '微信登录失败';
              console.error('微信登录失败:', errorMsg);
              wx.showToast({
                title: errorMsg,
                icon: 'none'
              });
            }
          })
          .catch(error => {
            wx.hideLoading();
            console.error('微信登录请求失败:', error);
            wx.showToast({
              title: '网络错误，请稍后重试',
              icon: 'none'
            });
          });
        } else {
          wx.hideLoading();
          console.error('获取登录code凭证失败:', loginRes?.errMsg || '未知错误');
          wx.showToast({
            title: '获取登录code凭证失败',
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        wx.hideLoading();
        console.error('调用wx.login失败:', err);
        wx.showToast({
          title: '登录失败，请重试',
          icon: 'none'
        });
      }
    });
  },
  
  // 处理获取用户信息
  handleGetUserInfo: function() {
    wx.getUserProfile({
      desc: '展示用户信息',
      success:(res)=>{
        console.log(res.userInfo)
        this.setData({
          userInfo:res.userInfo
        })
      }
    })
  },
})